//package com.uuedu.examant.base
//
//import android.net.Uri
//import android.text.TextUtils
//import okhttp3.Interceptor
//import okhttp3.MediaType.Companion.toMediaTypeOrNull
//import okhttp3.Request
//import okhttp3.RequestBody
//import okhttp3.Response
//import okio.Buffer
//import org.json.JSONException
//import org.json.JSONObject
//import java.io.IOException
//
//
//class MyInterceptor : Interceptor {
//    override fun intercept(chain: Interceptor.Chain): Response {
//        val JSON = "application/json; charset=utf-8".toMediaTypeOrNull()
//        val request: Request = chain.request()
//        val newRequestBuilder: Request.Builder = request.newBuilder()
//        val method = request.method
////        val categoryId = MyApplication.getCategoryId()
//        var postBodyString = ""
//        if (method == "POST" && !request.url.toString().contains("?")) {
//            //阿里云oss 接口不需要拼接公共参数
//            if (request.url.toString() != "https://wljy.oss-cn-qingdao.aliyuncs.com/"
//                && request.url.toString() != "https://uuedu-platform.oss-accelerate.aliyuncs.com/"
//            ) {
//                //公共参数设置处
//                if (request.body != null) {
//                    postBodyString = bodyToString(request.body!!)
//                    val map = getMap(postBodyString, categoryId)
//                    if (map != null) {
//                        val jsonObject = JSONObject(map as Map<*, *>)
//                        postBodyString = jsonObject.toString()
//                        val body2 = RequestBody.create(JSON, postBodyString)
//                        newRequestBuilder.post(body2)
//                    }
//                }
//            }
//        } else {
//            val url = request.url.newBuilder()
//            val uri: Uri = Uri.parse(url.toString())
//            val urlCategoryId = uri.getQueryParameter("category_id")
//            val urlGenusId = uri.getQueryParameter("genus_id")
//            val urlCategoryIds = uri.getQueryParameter("category_ids[]")
//            if (StringUtils.isEmpty(urlCategoryId)) {
//                url.addQueryParameter("category_id", categoryId)
//            }
//            if (StringUtils.isEmpty(urlGenusId)) {
//                url.addQueryParameter("genus_id", MyApplication.getGenusId())
//            }
//            if (StringUtils.isEmpty(urlCategoryIds)) {
//                getCategoryIds().forEach {
//                    url.addQueryParameter("category_ids[]", it.toString())
//                }
//            }
//            newRequestBuilder.url(url.build())
//        }
//        return chain.proceed(newRequestBuilder.build())
//    }
//
//    private fun bodyToString(request: RequestBody): String {
//        return try {
//            val buffer = Buffer()
//            request.writeTo(buffer)
//            buffer.readUtf8()
//        } catch (e: IOException) {
//            "did not work"
//        }
//    }
//
//    private fun getMap(jsonString: String?, categoryId: String): HashMap<String, Any>? {
//        if (!TextUtils.isEmpty(jsonString)) {
//            val jsonObject: JSONObject
//            try {
//                jsonObject = JSONObject(jsonString)
//                val keyIter: Iterator<String> = jsonObject.keys()
//                var key: String
//                var value: Any
//                val valueMap = HashMap<String, Any>()
//                while (keyIter.hasNext()) {
//                    key = keyIter.next()
//                    value = jsonObject[key] as Any
//                    valueMap[key] = value
//                }
//                if (valueMap["genus_id"] == null) {
//                    valueMap["genus_id"] = MyApplication.getGenusId()
//                }
//                if (valueMap["category_id"] == null) {
//                    valueMap["category_id"] = categoryId
//                }
//                if (valueMap["category_ids"] == null) {
//                    //如果没有这个参数就添加
//                    valueMap["category_ids"] = getCategoryIds()
//                }
//                println("Json==${valueMap.toJson()}")
//                return valueMap
//            } catch (e: JSONException) {
//                e.printStackTrace()
//            }
//        } else {
//            val valueMap = HashMap<String, Any>()
//            if (valueMap["genus_id"] == null) {
//                valueMap["genus_id"] = MyApplication.getGenusId()
//            }
//            if (valueMap["category_id"] == null) {
//                valueMap["category_id"] = categoryId
//            }
//            if (valueMap["category_ids"] == null) {
//                //如果没有这个参数就添加
//                valueMap["category_ids"] = getCategoryIds()
//            }
//            println("Json==${valueMap.toJson()}")
//            return valueMap
//        }
//
//        return null
//    }
//}